package com.roads.workflow.mapper;

import java.util.List;

import com.roads.workflow.domain.WorkflowTaskNode;
import org.apache.ibatis.annotations.Param;

/**
 * 工作流任务节点Mapper接口
 * 
 * @author nhp
 * @date 2022-01-09
 */
public interface WorkflowTaskNodeMapper {


    /**
     * 获取用户节点列表
     *
     * @param taskUuid 任务uuid
     * @return 任务节点用户列表
     */
    List<WorkflowTaskNode> selectUserOptions(String taskUuid);

    /**
     * 根据任务uuid和用户获取节点
     * @param taskUuid 任务uuid
     * @param user 用户
     * @return 任务节点
     */
    WorkflowTaskNode getWorkflowNodeByUser(@Param("taskUuid") String taskUuid,@Param("user") String user);

    /**
     * 根据任务uuid和流程节点uuid获取节点
     *
     * @param taskUuid 任务uuid
     * @param workflowNodeUuid 流程节点uuid
     * @return 任务节点
     */
    WorkflowTaskNode getWorkflowNodeByWorkflowNodeUuid(@Param("taskUuid") String taskUuid,@Param("workflowNodeUuid") String workflowNodeUuid);

    /**
     * 获取任务当前位置节点
     *
     * @param taskUuid 任务uuid
     * @return 当前任务节点
     */
    WorkflowTaskNode getWorkflowNodeByPosition(String taskUuid);

    /**
     * 新增
     * 
     * @param model 工作流任务节点
     * @return 结果
     */
    int insert(WorkflowTaskNode model);

    /**
     * 修改
     *
     * @param model 工作流任务节点
     * @return 结果
     */
    int update(WorkflowTaskNode model);

    /**
     * 根据任务uuid删除任务
     *
     * @param taskUuid 任务uuid
     */
    void deleteByTaskUuid(String taskUuid);

}
